That's why my input library has a rather odd collection of devices it supports, so far only things I directly own.
I do find the values are jittery when looking at them directly, but I've never noticed it when using them to control things.
A couple of other things to consider if you haven't already done so:
The range of the axes can vary, not just by model but individual device. The general range is considered to be -350 to 350, but for example my space pilot pro vertical axis has a range of around -410 (up) to 532 (down), but I have to push very hard on it to hit those extremes. The X axis is similar, left has a smaller range than right.
What I do is start with -350 to 350 as the min/max for each axis. If I get a larger value, I adjust the range to fit it. The returned values from my lib are then scaled to fit -1.0 to 1.0 to the current range.
Also making the axes nonlinear can be good. Put a power curve on it so small movements from centre have less effect. The official app only lets you change scale, mine has user specified power as well.
Here's my input test app where I reverse engineer these things.