Perhaps have a checkmark that is set by moderators, when there is unquestioned consensus that the answer is complete and fully answers the question. You can do it like close/open votes, and keep the answer unchecked until the disputes are resolved, and if it is challenged, chat it out, and uncheck if there is a mistake (or if a more complete answer comes along). I agree that the implementation of "accepted answer" is not good, but it is good to have a canonical answer to objective questions, beyond "most highly upvoted", because the canonical answer might not be the most insightful, if the question missed a point, an another answer expanded on something different altogether, and got a lot of upvotes for this reason.
(after reading the comments below, I am convinced this is not a good idea. But I believe there should be a mechanism for "undisputed answer" checking, from Wikipedia experience, 95% of all things are undisputed, because there is no political pressure either way).