Hi, I would love to help you with this, but first I have a quick question:
When your circle spins, do you want it to spin in a realistic way like a wheel would or faster/slower like Sonic the Hedgehog would.
If you want a real roll, and you want it to stop at angle 0 every time, that limits your distances to multiples of your circle's circumference (circle.width*pi). You can find the distance between two points by using the expression distance(x1,y1,x2,y2) and inputing your player's location and its target, dividing that by your player's circumference use floor(), round() or ceil() to find a rounded number of full rotation, and you find the exact distance you need to stop at for you character to stop at angle 0.
Now, if you want to stop at the spot where you clicked, you will have to use the Sonic spin, or you can have your player keep rotating towards angle 0 after it has stopped. I'm sure there are lots of different ways to go about this.
And yes, checking if Target.X > than Player.X will check the direction of your player.
If you need it, I can make a capx to demonstrate one method or the other. Let me know!