I have just used an array modifier to create a bunch of stairs for a pyramid we're creating. I have made the railings for the staircase wider at the bottom than it is at the top and therefore my stairs don't fit perfectly, so I was hoping there's a way to use the array modifier to incrementally scale the stairs so they fit. Please see screenshot for reference.
You could put the array under the control of another object (here, an empty,) by checking 'Object Offset' Then any object-level transform on the empty will be applied to each instance in the array.
In this example, X runs across the steps, and Z is up. The empty has been scaled in X.
This gives a step-wise taper. The progression is geometric, not arithmetic, though.
If you wanted a linear progression, you could make each step out of two halves: assign a 'Mirror' modifier after the array, checking 'Clip' and 'Merge', In this case, instead of scaling the empty, translate it a little in X. This would have the effect of translating the two halves toward one another by a constant amount, each step.
If you want the taper to be continuous, don't do as above. Instead, leave the array as it was and assign another modifier: 'Simple Deform' > Taper. Select the appropriate axis for the taper.
By default, the taper acts on both axes orthogonal to the taper direction. Lock off any axis you want to remain unaffected.. in this example, Z.
(The empty in the second illustration is redundant; I've used the step's own axes.)