GPS имеет ограниченную точность. Если вы получаете 20 исправлений в секунду и перемещаетесь, скажем, на 10 м / с, то разница в положении составляет около 0,5 м между двумя исправлениями, что обычно (в зависимости от аппаратного обеспечения, прямой видимости спутников и количества спутников, доступных для вашего GPS) ниже точности GPS.
Попробуйте использовать исправление каждые несколько секунд или сохраняйте очередь (вы можете использовать круговой массив для эффективной реализации очереди) исправлений и используйте среднюю скорость. Я бы предложил комбинацию обоих.