Engines can be configured to limit search to a certain depth, which will produce a result after every branch has reached the limit or been pruned. That process will vary in time but be deterministic.
Recent neural based engines tend to not be deterministic, especially if ran multi-threaded.
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.