When a stepSize is set on a Slider, it doesn't matter which snapMode (Slider.NoSnap) is set, it still snaps to the given stepSize.
Slider snapMode doc
If you're investigating have a look at qquickslider.cpp:199. The handleMove() function will check if snapMode is set to SnapAlways and adjust the position.
- If live is false it will set the position according to the actual position of the handle. Setting live to false would be a workaround, but then the user doesn't get live updates, which means everything will be update after release of the handle.
- If live is true it either has a neglectable small stepSize or it will use stepSize regardless of what was set as snapMode to calculate the new position (see qquickslider.cpp:609).