Assuming you always enclose the infix-style arguments of \choose in curly braces, i.e., if you write ${n \choose k}$ rather than just $n \choose k$, the following LuaLaTeX-based approach may be of interest to you. It defines a Lua function and assigns it to LuaTeX's process_input_buffer callback to scan the input stream for instances of {...\choose...} and to convert them to equivalent \binom expressions before TeX starts its usual processing.
This approach does have a few limitations. In particular, it assumes that the two ... arguments of \choose don't contain further curly braces. A less-binding constraint, hopefully, is that the instances of {...\choose...} don't contain line breaks.

If you check the log file, you'll find that it doesn't contain any warnings of the type
Package amsmath Warning: Foreign command \atopwithdelims;
(amsmath) \frac or \genfrac should be used instead
(amsmath) on input line 13.
That's because by the time LaTeX processes the input, it never "sees" any of the \choose instructions.
\documentclass{article}
\usepackage{amsmath} % for '\binom' macro
\usepackage{luacode} % for 'luacode' environment
\begin{luacode}
function choose2binom ( s )
-- perform non-greedy pattern match for "1 or more instances of any character"
return ( s:gsub ( "{(..-)\\choose(..-)}" , "\\binom{%1}{%2}" ) )
end
\end{luacode}
\AtBeginDocument{\directlua{luatexbase.add_to_callback (
"process_input_buffer", choose2binom , "choose2binom" ) }}
\begin{document}
${5\choose3}$ ${ 10 \choose 4 }$ $ {n\choosek} $
\end{document}
\chooseis the infix syntax (the final result is the same) so either leave it as it is or a simple editor replace should change the source code, there is no way to do anything in tex – David Carlisle Feb 24 '21 at 20:16\choose. E.g., do you always enclose the full expression in curly braces, as in{ 5 \choose 3 }? – Mico Feb 24 '21 at 20:17\chooseconstructs in suitable ways. – Mico Feb 24 '21 at 21:13