I have a monolithic application which can be divided into multiple steps and different steps have variable scaling requirement
This has nothing to do with a state machine. This is a pipeline.
You probably should break it into microservices so you can scale per logical component. Why do you need a state machine? Do calls affect subsequent calls? Generally back-end calls are designed to NOT change state of other backend calls. If there is only a little state per call, then just pass it along the microservice pipeline as parameters.
If you really need a truly global state, a microservice is probably the wrong answer.