Based on what others have suggested, I've just tried out pandoc for this, and it's produced really good results in CommonMark from some quite hideous Word documents.