From your initial description, it sounded like you had a list of file names, but not the full pathnames. If the list also has their locations, you don't need to find them
One thing you might need to do is use the `tr' command to make it easier to handle white space and "evil" characters.
cat filelist.txt | tr '\n' '\0' |xargs -0 mv -t /target/directory/
This is similar to using find with the "-print0" option, piped to xargs with a correslonding "-0" option. The null character is used to separate arguments. The -t option for "mv" allows the target of the "mv" command in the front of the arguments, since xargs adds the source arguments at the end.
Look at the xargs options to limit how many arguments to handle at once. If your file list is too long you may get an out of memory error from bash.
On more thing to consider is if you may find a file whose name begins with a dash. If that is possible, end the command with two dashes.