Ich weiß nicht, ob es dafür schon etwas fertiges gibt, aber du könntest bspw. nur einen Timer mit einem Intervall von z.B. 1000 ms anstoßen. Bei jeder Bewegung wird der wieder zurückgesetzt (deaktiviert + aktiviert). Wenn jetzt 1 Sekunde keine Bewegung mehr erfolgt ist, dann startet die Berechnung.
Mit dem Intervall kannst du ja einfach etwas herumspielen, ich denke 500 ms oder so kann auch reichen, je nachdem wie du das haben möchtest.
Auf jeden Fall verhinderst du so eine ständige Abarbeitung beim Bewegen, selbst wenn du das Intervall relativ niedrig setzt.
Vielleicht gibt es da auch mit .NET noch bessere Lösungen, aber so gut kenne ich mich damit noch nicht aus.