My suggestion (see comment above) is to run a multilevel model. My original answer suggested a Bayesian model. Here I'll provide some code for you do it in r using lme4. It's not fully Bayesian, but its simpler to do.
First, the model:
Assuming you have $i = 1, 2, ..., 8$ subjects and $j = 1, 2, ... ,4$ trials, then you can vary by subject or trial. It seems to me that it's more proper to model the subjects response in each trial as correlated, i.e., not independent. So, we will estimate a model that the intercept and slope vary by subject. If the variance among subjects is close enough to zero, then there is no difference among subjects. However, if the variance goes to infinity, then each subject isn't comparable to each other.
$ y_{ij} ~ N(a_{i} + b_{j}*x_{ij}, \sigma^{2})$
$ a_{i} ~ N(\mu.a, \sigma.a^{2})$
$ a_{i} ~ N(\mu.b, \sigma.b^{2})$
Now, the r code.
Assuming your data.frame is my.df, and that the dependent variable is y, the treatment is x, and there is a variable subject, just run:
require(lme4)
fit <- lmer(y ~ x + (1|subject) + (0 + x|subject), data=df)
ranef(fit) # this will provide the estimated effect of the varying intercept and varying slope
Note that you don't have standard errors for the random effects, and it's ok. See here: