Со стопроцентной точностью - никак.(ибо ты не оракул чтоб предсказать - закончил ли юзер крутить окончательно или прервался на момент

)
Остаётся лишь ставить задержку выбранную условно:
<div style="height:2500px"></div>
<script>
function setBg(color){
document.body.style.backgroundColor = color || '';
}
function scroll(){
if(scroll.scrolling){
clearTimeout(scroll.timer);
} else {
setBg('red');
scroll.scrolling = true;
}
scroll.timer = setTimeout(scrollStop, 200);
}
function scrollStop(){
setBg();
scroll.scrolling = false;
}
document.body.onscroll = scroll;
</script>
Можно усложнить привязываясь к mouseup/down итд.