To interpolate the output of a command on the command line of another command, use command substitution.
subl "$(pwd)/somefile.txt"
Note that you need to put (…) between double quotes. Otherwise, bad things will happen sometimes (when the output of the command contains whitespace or \[*?).
In the special case of pwd, there is a shell variable that contains the same text: instead of $(pwd), you can write $PWD. For the same reasons, this needs to be between double quotes.
If you want subl to invoke the subl program with an absolute path as argument, this has to be done in a function, it can't be done in an alias. Remember that the path may already be an absolute path.
subl () { case "$1" in /*) :;; # already an absolute path, nothing to do *) set "$PWD/$1";; # make an absolute path esac command subl "$1" # invoke the external program subl, even though a function exists }