I am designing a use case where millions of users will be using it and is expecting a transaction rate of 50 per second. I am looking forward to have it on Azure.
It depends on your definition of stable.
If by stable you mean that it is accessible then you have to look at Azure's estimates/promises about server downtimes and calculate based on those - based on from how many nodes you are planning to issue transactions.
If by stable you mean that there is no latency then in theory 1 node is the optimal as it doesn't need to discuss with any other node.
Most likely you have to make compromises on the amount of nodes based on accessibility / latency / money / something else.
As for the transaction rate, there is some discussion about it here for example: What is a Private Proof of Authority transaction speed?
As I can't give you any real numbers I strongly suggest you to start with a smaller set of (test) users and work your way up from there - you will also need the experience of running Ethereum nodes in whatever platform.