Try this:

Put a timer control and a picturebox on the form and this code:

You can alter the MoveUnits and the Timer1.Interval to get the desired speed and tolerence.
vb.net Code:
  1. Public Class Form1
  2.     Const MoveUnits As Integer = 5
  3.     Dim mouseX, mouseY As Integer
  4.  
  5.     Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  6.         Timer1.Interval = 5
  7.         Timer1.Enabled = True
  8.     End Sub
  9.  
  10.     Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
  11.         mouseX = e.X
  12.         mouseY = e.Y
  13.     End Sub
  14.  
  15.     Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  16.         Dim nX, nY As Integer
  17.         nX = PictureBox1.Left + PictureBox1.Width \ 2
  18.         nY = PictureBox1.Top + PictureBox1.Height \ 2
  19.         If mouseX > nX Then nX += MoveUnits Else nX -= MoveUnits
  20.         If mouseY > nY Then nY += MoveUnits Else nY -= MoveUnits
  21.         If Math.Abs(mouseX - nX) > MoveUnits Then PictureBox1.Left = nX - PictureBox1.Width \ 2
  22.         If Math.Abs(mouseY - nY) > MoveUnits Then PictureBox1.Top = nY - PictureBox1.Height \ 2
  23.     End Sub
  24. End Class

Pradeep