Your animation is relative to the registration point of your CAShapeLayer, which is (0, 0) in screen coordinates.
Try this:
circle.path = [UIBezierPath bezierPathWithArcCenter:CGPointZero radius:radius startAngle:0 endAngle:M_PI*2 clockwise:NO].CGPath;
circle.position = drawPoint;