I know they both means the same..but when I am writing or speaking..I dont know which of them is the most appropriate.
Could u tell me..?
Thank you for your help.
To the extent that it's possible to codify such things, I would say that "I must admit" presents a concession:
1. I don't really like Josie. But I must admit, she can be very funny.
— here, the speaker uses "I must admit" to present a positive comment about Josie. It's a "concession", because the speaker doesn't like Josie: therefore you wouldn't expect him to say something positive about her.
"I have to say" can also present a concession, in the style of #1; but it can also be used to mean "I don't want to say this, but...", e.g.
2. I have to say, that's the most ridiculous explanation of "I must admit" I've ever heard.
— here, the speaker uses "I have to say" to present a negative comment. The phrase is often used in a humorous context: the speaker pretends to be unwilling to say something.
(You might say that "I must admit" has an air of voluntary confession, and "I have to say" an air of "being forced to say something".)