Да, используйте setTimeout и очищайте его каждый раз, когда движется мышь. Если мышь не двигалась за время, указанное в setTimeout, вы можете предположить, что мышь перестала двигаться. Используя jQuery, вы можете сделать что-то вроде этого:
var stop_timeout = false;
$(function() {
$().mousemove(function() {
clearTimeout(stop_timeout);
stop_timeout = setTimeout(function() {
alert("The mouse has stopped.");
}, 1000);
});
});
Немного тяжело устанавливать и сбрасывать таймауты каждый раз, когда мышь двигается, но это должно работать для ваших целей.