There are several other characters in addition to ampersand that will cause batch scripts to fail if they are not guarded against. These include greater-than (>), which is the output redirect symbol; less-than (<), which is the input redirect symbol; vertical bar (|), which is the pipe symbol; left and right parentheses "(" and ")", which are used for statement grouping - especially if they are unbalanced, and cap/hat (^), the escape symbol itself.
If you are using the escaping technique, you will need to escape all of these characters.
If you are using quotations to surround the string in question, then any code which handles the ampersand properly will also handle all the others.
Add to that the percent sign (%) which designates batch variables, exclamation points (!) if you have delayed expansion enabled, and quotation marks if the string you are dealing with is not a Windows filename or folder name or path. Quoting may not be adequate for these characters, because the batch script interpreter searches within quoted string to perform substitutions. You may be able to deal with percent signs and quotation marks by doubling them rather than escaping them (I'm not sure why this would be better or worse).