Big vote for the 'obvious' suggestion by Nicolas D to use microstepping which will make the motor move smoothly, 16-microstep driver chips (Allegro A4988 for example) are readily available and there are some drivers which go much further (64 microsteps or more).
However, if you need small, smooth, accurate movements the best thing you can do is gear the system down so that you are not relying on the limits of motor quality for smoothness. Moving 0.1 to 1mm/sec is not a very big range of speeds, you could probably gear the drive from the motor down to a ratio of 100:1 or lower (so 100x better accuracy). If you know the maximum speed the motor can run, choose gearing that will move the device at your maximum speed (1mm/sec) at the maximum speed of the motor. This will give you a far better range of control and increase the achievable accuracy.
You don't say what the gearing of your system is - as you state movement in mm/sec I assume you have some sort of lead-screw style mechanism.
Even quite basic CNC machines / 3D printers can achieve movement accuracy of 0.1mm whilst moving a lot faster than 1mm/sec, using very cheap stepper motors & drives. Most of the inaccuracy ends up coming from the play in the drive system (usually lead screws) or flex in the machine body due to mechanical loads.