Something like this should work:
give the circle an instance variable a
on circle touched set a to abs(circle.angle-angle(circle.x,circle.y,touch.x,touch.y))
touch is touching circle - circle set angle : angle(circle.x,circle.y,touch.x,touch.y)-a
could be I've made a mistake somewhere, but what I'm trying to do is get the offset between circle.angle and the angle towards touch and use that offset while moving the finger..