mouse.Move not working properly

I have this LocalScript that detects when the mouse moves and prints accordingly. When the mouse is moving in a circular motion it works fine. But if the mouse starts going in an up and down motion (and even sometimes side to side) then it starts to print that the mouse is idle.
Is there any way around this?

local mouse = game.Players.LocalPlayer:GetMouse()
local move = false

mouse.Move:Connect(function()
	move = true
end)

mouse.Idle:Connect(function()
	move = false
end)

while true do	
	if move then
		print("Moving")
	else
		print("Idle")
	end
	wait()
end
local mouse = game.Players.LocalPlayer:GetMouse()

mouse.Move:Connect(function()
	print("Moving")
end)

https://gyazo.com/4ed75b585620d9db844a95e0e58ae536

https://developer.roblox.com/en-us/api-reference/event/Mouse/Idle

Note, this event should not be used to determine when the mouse is still. As it fires every heartbeat it will fire between Mouse.Move events.