They basically both describe an obligation and the difference is slight. Mam is closer to 'have to', somebody gives you an order so it's not your inner feeling that you'll do that. Muszę has a wider meaning - it covers both 'have to' and 'must', it's either a given order or your decision.
Jest już 10, muszę w końcu wstać z łóżka! - It's already 10 am, I must finally get up!
Do końca miesiąca muszę/mam oddać pracę. - I have to hand in my thesis till the end of the month.
Muszę iść odebrać dziecko z przedszkola. - I have to take my kid from the kindergarten.
Mam/muszę być na lotnisku kiedy on przyjedzie. - I have to be at the airport when he arrives. (because he told me so)
Muszę być na lotnisku kiedy on przyjedzie. - I have to be at the airport when he arrives. (because I want it, it may be a surprise)