ls can be piped safely if you use --zero:
ls --zero *.txt | xargs --null -I {} mv {} /home/user/Documents
While the above is a pretty silly example, one reason why you might want to do this is that xargs has a -P/--max-procs argument, that runs N commands in parallel. So you could do something like the following to gzip four files in parallel:
ls --zero *.txt | xargs --null -n1 -P4 gzip
This is a bit simpler than using the equivalent
find . -maxdepth 1 -name '*.txt' -print0 | xargs --null -n1 -P4 gzip