A) Use wallet that allows coin control and always pick your coins to create smallest size transactions.
Can be avoided of you spend the exact inputs you have so there would be no dust left over, but that wouldn't be convenient for average users.
They'll still have to consolidate the dust inputs into a larger one.
https://medium.com/@lopp/the-challenges-of-optimizing-unspent-output-selection-a3e5d05d13ef
With coin control you can pick one or two inputs, instead of having a random group of who knows how many. I think it's still better because you could avoid some dust and manage it's creation.
Assume you have these amounts of BTC in addresses
0.000001
0.0000001
0.00000001
0.1
0.01
You wish to transact 0.15.
The program picks the first four, eliminating some small amounts and leaving after fees maybe 0.0488.
Fees on the first three are in excess of value. With coin control you would select only the fourth number, 0.1 and have the smallest transaction.