Lower the resolution to the least available for your monitor and check again starting from Low. If the case remains the same, then the problem is with your CPU.
I can run it fine on:
EVGA GTS 250 512MB
E8400 @ 3.00 GHz
4 GB RAM
with 20-40 FPS on all LOW at 1600 x 900
It's both. GTS 250 is pretty outdated and now only works with low resoultion monitors like 720p. Also, that CPU is going to bottleneck any GPU that will be able to run BF3 smoothly at 1080. I think you may have to build an entire new system. Or you can run it on 720p and get around 40 fps on medium (keep in mind it wont look as good as if you had a DX11 card.)
BF3 is a very demanding game, even a high end gaming PC are still struggle to run that game smoothly...
Agree with people above, lower your resolution, your CPU+GPU is not strong enough to play recent games at high (HD) resolution.
Well , I can't afford a new build at this time.I will just stick with this.
On 1920x1080 and AUTO preset it runs with 30fps and that freeze thing only happens sometimes.I think I will do a clean Windows install cause it is pretty overloaded
Also , if I OC both CPU and GPU it may run the game better?