You need to use a wallet that lets you manually set the transaction fee. If your transaction is not urgent you can set a very low fee and it will still confirm after a while.
You could do this, but to help alongside this is to use a lower fee and then find one of the bitcoin TX accelerators to be able to at least get it a little faster. As you're not going to get confirmed if you have a low TX fee. Sucks, but that is the price we pay for BTC to be secure and safe for all.
But what if I am sending from my exchanges wallet to mine? How do I reduce fees in that case? If the fee is very low how do i calculate the time it would take to go through(will there be a chance that it will never go through)
Most exchanges even let you set this, at least the big ones do.