not quite deterministic when you consider multithreading and monte carlo search.
So you just choose in advance what settings to run with and the stopping condition. And then it doesn't matter that if you had run it with different settings, you may have gotten a different answer.
I don't think there's a real fix for the issue, unless someone effectively solves chess someday. Otherwise your win/loss is fundamentally based on the imperfect evaluation of a particular engine.
If it's really just the nondeterminism that bothers you (which is fair enough, preferences vary), there's engines that either are deterministic or can be made so with settings.