There are several issues to solve. The \pagenote command is built precisely in order to avoid expansion of its argument. Thus a “naive” definition such as
\newcommand{\xpagenote}[1]{%
\begingroup\protected@edef\x{\endgroup\noexpand\pagenote{#1}}\x}
that should expand everything expandable in the argument to \xpagenote, passing the token list thus obtained, which is the standard way to cope with this case, doesn't work, because in the endnote file every space is changed into a new line character and there are two of them in case of an input such as
\xpagenote{\textbf{\myvar}}
A slightly more complicated approach seems to work:
\documentclass{memoir}
\makepagenote
\makeatletter
\newcommand{\xpagenote}[1]{%
\unskip\begingroup\protected@edef\x{\endgroup\noexpand\pagenote{#1}}%
\scantokens\expandafter{\x\relax}}
\makeatother
\def\myvar{Good morning.}
\begin{document}
In the morning\xpagenote{Something with ``\myvar''}
\def\myvar{Good night.}
At night\xpagenote{``\textbf{\myvar}''}
\printpagenotes
\end{document}
The pass through \scantokens reduces again multiple spaces to single space tokens; the final \relax is used to suppress the final space added by \scantokens.

If your \pagenote command contains only the variable, a simpler approach works:
\newcommand{\sxpagenote}[1]{\expandafter\pagenote\expandafter{#1}}
and \sxpagenote{\myvar} will do the right thing.
\myvaris the only or at the least the first content of\pagenotethen\expandafter\pagenote\expandafter{\myvar}should work. This could be wrapped up in a new macro if you need it more often. – cgnieder Mar 3 at 8:32\newcommand\mypagenote[1]{\expandafter\pagenote\expandafter{#1}}? – cgnieder Mar 3 at 8:56\mypagenotein the definition of another macro. Perhaps it's better if I consider some approach other than pagenotes. – LianTze Lim Mar 3 at 14:29\myvaris the first content) works in a MWE, but fails in my main project code. I'll try to isolate what and where I messed up, before asking another question. – LianTze Lim Mar 3 at 14:42