I suspect that you want to override the OnMouseMove method for your UserControl. You can then look at the MouseEventArgs which you get from that handler and use the GetPosition method to get the mouse co-ordinate.
If you stored this point in a local varaible somewhere, the after the first mouse move you could compare it and move it in the appropriate direction. An example bit of code might be
private Point prev;
private void UserControl_OnMouseMove(object sender, MouseEventArgs e)
{
Point p = e.GetPosition();
if(prev == null)
prev = p;
if(p.Y > prev.Y)
this.Pin.Move(Direction.Up);
else if(p.Y < prev.Y)
this.Pin.Move(Direction.Down);
etc.
prev = p;
}
Hope this helps