window.onmousewheel = document.onmousewheel = wheel;
var time = 330;
var distance = 100;
function wheel(event) {
if (event.wheelDelta) delta = event.wheelDelta / 90;
else if (event.detail) delta = -event.detail / 3;
handle();
if (event.preventDefault) event.preventDefault();
event.returnValue = false;
function handle() {
$('html, body').stop().animate({
scrollTop: $(window).scrollTop() - (distance * delta)
time);
Там Вы на каждую прокрутку колеса делаете анимацию прокрутки. А событие прокрутки колеса генерируется несколько раз и в целом достаточно часто, особенно если сразу много прокручивать вот она и скачет.
Причём у каждого пользователя может генерироваться разное количество событий, в зависимости от настроек и мышки.
Таким образом, при прокрутке я за 1 секунду могу сгенерировать 5 событий. Разница между которыми, скажем, 200мс, а у вас только 1 анимация прокрутки указана длительностью 330мс. В итоге первая анимация не закончилась, я прокрутил ещё, и.. имеем что имеем.
Я так понимаю, Вы хотели добиться более плавного скролла?