One cheap solution is to create a PWM signal, filter it with a RC cell, and then feed it to a voltage-to-current converter. In the simplest case, this can be a transistor with a resistor in the emitter, and the load in the collector. But you can also use an op amp for this. Since you only need a 20-step scale, this may be enough for you.
A better but more expensive solution is to connect a DAC to 5 of your digital outputs, and feed the output of the DAC to a voltage-to-current converter as before. I think there are even some DACs which directly control their output current. Since you only need 5-bit resolution, you can even build a R-2R DAC yourself, as described here.
In the end, the optimal solution depends on your project's constraints (time? price? size?).