Widths of digits and letters

Tabular is the right solution. You can get rid of the left indentation by starting your table specification with @{}:

\begin{tabular}{@{}l@{ = }r@{\,\%}}
Midterm Exam & 60 \\
Home-work & 5\\
Quizzes & s\\
Report & S\\
Final Exam & SS
\end{tabular}

I tried a tabular environment within the minipage environment. It introduces an left indent that I could not get rid of.

The length that controls the horizontal cell padding in tabular environments is \tabcolsep. If you reset this length to 0pt inside the minipage, the effects will be local to that minipage. You can also use a tabularx environment instead of a normal tabular as it allows a specified width and provides the X column specifier which will expand a given column to fill any leftover space.

\documentclass[12pt]{report}

\usepackage{lipsum}
\usepackage{tabularx}
\usepackage{tikz}

\begin{document}
\lipsum[1]
\medskip

\noindent\begin{minipage}{4in}
  \setlength\tabcolsep{0pt}

  \begin{tabularx}{\linewidth}{X@{ = }r}
    Midterm Exam & 60\% \tabularnewline
    Home-work & 5\% \tabularnewline
    Quizzes & s\% \tabularnewline
    Report & S\% \tabularnewline
    Final Exam & SS\%
  \end{tabularx}
\end{minipage}
% Length check
\\\tikz{\draw[|-|] (0,0) -- node[fill=white]{4in} (4in, 0);}

\medskip
\lipsum[2]
\end{document}

Results:

Tabular with no horizontal padding