CPU, as the current CPU would bottleneck a better GPU. For the socket you are running, get an FX 6300 or 8350. You can upgrade the GPU later, and the CPU will not bottleneck the later GPU.
Actually, your processor is capable, but you really need a very high overclock and a very good cooling to handle it. Which does not make sense if you can throw 100 bucks on a cooler, you better sell your chip and get a FX8350, with its 4.0ghz at stock will be much better than a FX 4170 at a very high overclock...
I have the ASRock 970 EXTREME3 AM3+ MOBO, I think that can support the fx-8350, right?
Yes, this mobo does support the FX 8350 and is good for some overclocking as well (assuming you buy a good cooler). Also, The piledriver CPU's came out out in October, so they are pretty recent. AMD does not have anything new coming until quarter 4 of this year.