The fact that you keep saying this makes me think that you are misunderstanding something.
If you receive 5 payments to a single address, OR you receive those same 5 payments to 5 different addresses, it doesn't matter when it comes to transaction costs. Either way you still have 5 outputs. Spending those 5 outputs will cost the same in fees either way. You can't reduce the number of outputs by re-using an address. You can't save on transaction fees by re-using an address.
That being said. You can monitor the average transaction fees on the network and the blockchain (or use a service that does this for you). Then, when the average fee per byte needed for fast confirmation is low, you can create transactions that spend many of your unspent outputs, and that create a single higher value new output. That way, you are only paying the transaction fee on all those outputs when it is cheap to do so. Then later when the fees are higher, you'll have just a single output to spend (which will reduce the size of your transaction.
Other things you can do to reduce costs are:
Batch up your transactions. Instead of sending immediately, you can wait until you have a few places you need to send to. Then you can create a single transaction that has multiple outputs. Each output only increases the transaction size by 34 bytes, whereas a whole new transaction would require 10 bytes of overhead plus, potentially, additional inputs.
Try to choose inputs such that the sum of their value is very close to the sum of the value of the outputs plus the necessary transaction fee. If you can avoid the need to create change outputs, then you will reduce the size of both the current transaction (since you'll have one less output in the transaction) AND a future transaction (since there will never be a future transaction that needs to spend that additional change output).
Use SegWit addresses when receiving.
Use Lightning Network as soon as it is available (start learning about it now, so you are ready when it is available).
Increase the amount that you are charging your customers to cover some of the costs associated with transactions.
Provide your customers with an account on your system so that they can send a single large payment to you. Then they can spend from that account multiple times until all the funds have been used up. Each spend from an account can be instant. It won't need confirmations, and it won't create transactions or outputs in the bitcoin system.
Offer incentives and find other ways to encourage your customers to send fewer larger payments instead of many smaller payments.