Expansions don't get recursively applied. Doing that would make it impossible to handle arbitrary data with dollar signs embedded.
A somewhat usual custom is to have config files like that as actual shell script, so (like the ones in Debian's /etc/default), so the file would be
DIR="${HOME}/test/tmp"
and you'd read it with
. configfile
though of course that has the problem that the file is a full shell script, must conform to the shell syntax and the config can run arbitrary commands.
Another possibility would be to run the file through envsubst, e.g. with the file in your question, envsubst < configfile would output:
DIR = "/home/me/test/tmp"
or you could use envsubst '$HOME $OTHER $VARS' to expand just some particular ones.