Natural deduction is as much an art as a science --it takes some creativity. You might check my answer to How to prove a theorem using Sentential Derivation for some general advice. Keelan's method of solving is correct (and quite clever), but I suspect it might baffle a beginner. For that matter, it wouldn't have naturally occurred to me. I personally solved it in a somewhat more labor-intensive manner.
- Let's start as you did, by assuming C->A
We know that we want to end with A, so now assume the opposite (Not A).
Now we are apparently stuck. Is there anything that helps in the premise?
If we had A->B we might get somewhere. How can we get A->B? Assume A and derive B. How to do this? If we do assume A, we have made two contradictory assumptions (A and Not A). We can subsequently get anything we want. In this case we want B, so we assume the opposite, show A and Not A and thus demonstrate B. Now we have A->B
A->B gives us C (via the premise).
C gives us A (via our first assumption).
Now we have A and Not A at this level too. That means our assumption of Not A was wrong, and therefore A is correct (given C->A). That's exactly what we wanted all along.
You'll want to follow along by diagramming this (using whatever system you have been taught). You'll see it gets a little complex because of all the nested assumptions. However, as long as you are careful, they will all clear up neatly. You can't be afraid to make assumption after assumption, as long as you always know how deeply you have traveled. It's also OK to make contradictory assumptions, if they serve a purpose.
Keelan's version, which is shorter and less nested, starts from the fact that C OR Not C is a tautology (it is always true). Some systems will allow you to start with this, others would require you to prove it first.