Any ideas how I could achieve a slow rate of change to the outputs?
Yes. But seeing your code would allow us to explain it to you in terms of YOUR code.
You have a current range of outputs. You have a delta to be applied to that range. You want to divide the delta by a number of steps, and then apply the smaller delta over some time.