How to make it so that admins are not able to view private messages of their users?

This is my current understanding of the situation, yes. If you want to do user-to-user messaging and you think folks are concerned about the privacy implications, then you should probably look at complementing Discourse with something else.

For that scenario, I’d recommend a messaging solution with end-to-end encryption, like maybe Riot/Matrix for example. Without that, you’re basically in the same technical space as Discourse where admins can always get access to the content of those user-to-user messages.